package com.example.mq.mqServer.core.message;

import lombok.Data;

import java.io.Serializable;

/**
 * @BelongsProject: 0.mq
 * @BelongsPackage: com.example.mq.mqServer.core
 * @Author : 游在海里的鱼
 * @CreateTime : 2023-11-24  19:37
 * @Version : 1.0
 * @Description : Message的基础属性
 */
@Data
public class BasicProperties implements Serializable {
    //消息的标识符，使用UUID
    private String id;
    //路线通行钥，决定消息要发送到哪些队列
    //交换机类型为DIRECT时，此属性表示发送队列的名称，
    //交换机类型为FANOUT时，此属性不使用（因为所有队列都要发送）
    //交换机类型为TOPIC时， 此属性就要和bindingKey做匹配，符合要求才能发送进队列
    private String routingKey;
    //消息是否持久化，1不持久化，2持久化（RabbitMQ就是这样）
    private int deliverMode;

    public BasicProperties(){
        this.id = null;
        this.routingKey = null;
        this.deliverMode = 2;
    }
}
